In modern Internet applications, business processes and logic continue to be executed at backend servers. To a limited extent, other processes, such as input validation, value help, field control (e.g., whether a field is editable, mandatory, hidden), and data manipulation (e.g., sorting, filtering, etc.) may be partly executed by a client device in conjunction with a backend server. As a result, numerous interactions are often required between the client device and the backend server. Such interactions often cause significant performance issues, especially within mobile networks where bitrates and available bandwidth may be limited.
Within a client-side application, control of user-interface components typically requires many interactions between the client device and the backend server. For example, field control in SAP's Fiori applications is either static or implemented using a special field inside an OData service. Such implementations require numerous backend interactions to update the special field. Accordingly, control of the frontend user-interface from the backend server's business logic requires substantial network resources. In another example, other known applications require duplication of backend logic at the frontend client device. In this type of application, developer efficiency is significantly impaired as frontends are short-lived and change frequently. By contrast, applications hosted on backend servers typically have a much longer lifecycle. In yet another example, some applications may not use field control on the client device, which results in a poor user-experience.
In light of the problems identified above, the inventor has provided systems and methods for efficiently controlling user-interface components from one or more backend server(s). The embodiments described below provide control of user-interface components without excessive client-server interactions. In addition, the various embodiments described herein enable efficient application development and good user-experience.